/*     く__,.ヘヽ.        /  ,ー､ 〉
           ＼ ', !-─‐-i  /  /´
           ／｀ｰ'       L/／｀ヽ､
         /   ／,   /|   ,   ,    ',      ╭────────╮
        ｲ   / /-‐/  ｉ  L_ ﾊ ヽ!   i     │咦？ 被你┃
        ﾚ ﾍ 7ｲ｀ﾄ   ﾚ'ｧ-ﾄ､!ハ|   |        │发现了呢!┃
          !,/7 '0'     ´0iソ|    |       ╰━━━━━━━━╯
          |.从"    _     ,,,, / |./    |        
          ﾚ'| i＞.､,,__  _,.イ /   .i   |  
            ﾚ'| | / k_７_/ﾚ'ヽ,  ﾊ.  |
              | |/i 〈|/   i  ,.ﾍ |  i  |
             .|/ /  ｉ：    ﾍ!    ＼  |
              kヽ>､ﾊ    _,.ﾍ､    /､!
              !'〈//｀Ｔ´', ＼ ｀'7'ｰr'
              ﾚ'ヽL__|___i,___,ンﾚ|ノ
                  ﾄ-,/  |___./
                  'ｰ'    !_,.:*/
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
struct competitor
{
	int ans_or_not;
	char name[15];
	int ac;
	int hh;	//小时 
	int mm;	//分钟 
	int ss;	//秒
	int sum_time;	//方便用于比较排名 
	int oj_subject[123]; //ASCII码
};
struct competitor c[10005];
struct data
{
	char Name[15];	//提交者的名字 
	int HH;	//小时 
	int MM;	//分钟 
	int SS;	//秒
	char Sub;	//题号 
	char result[5];	//结果 
};
struct data d;
//将时间进行进位处理 
void change_time(struct competitor c[10005],int i)
{
	c[i].mm += c[i].ss/60;
	c[i].ss %= 60;
	c[i].hh += c[i].mm/60;
	c[i].mm %= 60;
}
bool cmp(competitor a,competitor b)
{
	if(a.ac==b.ac && a.sum_time!=b.sum_time)
		return a.sum_time<b.sum_time;
	if(a.ac==b.ac && a.sum_time==b.sum_time)
		return strcmp(a.name,b.name) > 0 ;
	return a.ac>b.ac;
}
int main()
{
	int n,m,k;
	int i,j,f1=0,f2=0,TLE_flag;
	int st_h,st_m,st_s;				//开始的时间
	int ed_h,ed_m,ed_s;				//结束的时间 
	char temp;
	scanf("%d%d%d",&n,&m,&k);getchar();
	scanf("%d:%d:%d",&st_h,&st_m,&st_s);getchar();
	scanf("%d:%d:%d",&ed_h,&ed_m,&ed_s);getchar();
	for(i=0;i<n;i++)
	{
		cin.getline(c[i].name,15);
		c[i].ac=-1;
		c[i].hh=c[i].mm=c[i].ss=0;
		c[i].ans_or_not=0;			//默认没有答题
		for(j=0;j<=122;j++)
			c[i].oj_subject[j]=0; 	//答题结果初始化 
	}
		
	while(m--)
	{
		scanf("%s",d.Name);getchar();
		scanf("%d:%d:%d",&d.HH,&d.MM,&d.SS);getchar();
		scanf("%c",&d.Sub);getchar();
		scanf("%s",d.result);getchar();
		//终止比赛 
		TLE_flag=1;
		if( d.HH > ed_h )
			TLE_flag=0;
		else if(d.HH==ed_h&&d.MM > ed_m)
			TLE_flag=0;
		else if(d.HH==ed_h&&d.MM==ed_m&&d.SS > ed_s)
			TLE_flag=0;
		
      	if(TLE_flag)
        {
          //确定选手 
          for(i=0;i<n;i++)
              if(!strcmp(d.Name,c[i].name))
                  break;
          if(c[i].oj_subject[ d.Sub ]==1 || !strcmp(d.result,"CE"))
              continue;

          if(!strcmp(d.result,"AC"))
          {
              c[i].oj_subject[ d.Sub ]=1;
              c[i].ac++;
              if( !c[i].ac )		//排除没答题人的排名影响 
                  c[i].ac++;
              f1=1;f2=0;
          }
          else
          {	f1=0;	f2=20;	}

          c[i].hh+=(d.HH-st_h)*f1;
          c[i].mm+=(d.MM-st_m)*f1+f2;
          c[i].ss+=(d.SS-st_s)*f1;
        }
	}
	//清空剩余缓存好让程序结束的舒服点
	//想想，不对呀，评测姬不爽不关我事呀 
	//m++;
	//while(m--)
	//	while( (temp=getchar())!='\n' );
		
	//统计选手总时间
	for(i=0;i<n;i++)
		c[i].sum_time = c[i].hh*3600+c[i].mm*60+c[i].ss;
	
	//进行排名
	sort(c,c+n,cmp); 
	//开始打印
	for(i=0;i<n;i++)
	{
		if(c[i].ac== -1 )
			break;
		printf("%d %s %d ",i+1,c[i].name,c[i].ac);
		change_time(c,i);
		if(c[i].hh<10)
			printf("0");
		printf("%d:",c[i].hh);
		if(c[i].mm<10)
			printf("0");
		printf("%d:",c[i].mm);
		if(c[i].ss<10)
			printf("0");
		printf("%d\n",c[i].ss);
	}
	return 0; 
}